package org.lyq.erp.auth.employee.service;

import java.util.List;
import org.lyq.erp.auth.employee.pojo.Employee;
import org.lyq.erp.auth.employee.pojo.EmployeeExcelModel;

/**
 * 员工模块业务处理接口
* @ClassName: EmployeeService
* @Description: TODO
* @author LYQ(廖先生)
* @date 2017年12月15日 下午9:36:51
*
 */
public interface EmployeeService {
    /**
     * 插入一条员工信息
     * @param record   装载员工信息的model类
     */
	public void insertSelective(Employee record);
    /**
     * 根据id查询该员工
     * @param empUuid  员工id
     * @return
     */
    public Employee selectByPrimaryKey(Integer empUuid);
   /**
    * 修改员工信息
    * @param record    装载员工信息的model类
    */
    public void updateByPrimaryKeySelective(Employee record);
   /**
    *  验证员工的名字是否存在
    * @param empUsername  员工的用户名
    * @return
    */
    public boolean checkName(String empUsername);
    /**
     * 根据条件查询所有的员工
     * @param employee   员工model类
     * @return
     */
	public List<Employee> selectAllEmployee(Employee employee);
	/**
	 * 插入一条员工信息
	 * @param employee
	 * @param roleUuids 
	 * @param databaseType 
	 */
	public void insert(Employee employee, Integer[] roleUuids);
	/**
	 * 修改一条员工信息
	 * @param employee
	 * @param databaseType 
	 * @param roleUuids 
	 * @param empUuid 
	 */
	public void update(Employee employee, Integer empUuid, Integer[] roleUuids);
	/**
	 * 删除一条员工数据
	 * @param empUuid
	 */
	public void delete(Integer empUuid);
	
	/**
	 * 根据姓名和身份证号查询一条用户名信息
	 * @param empIdcard
	 * @param empName
	 * @return
	 */
	public Employee getEmpUsernameByEmpNameAndEmpIdcard(Employee emp);
	/**
	 * 根据用户名查询一条用户信息
	 * @param username
	 * @return
	 */
	public Employee selectEmployeeByUsername(String username);
	
	/**
	 * 验证手机号
	 * @param empTele
	 * @return
	 */
	public boolean checkTele(String empTele);
	/**
	 * 下载员工信息
	 * @param emp
	 */
	public void insertEmployeeExcelModelSelective(EmployeeExcelModel emp);
	
	/**
	 * 根据部门id查询员工
	 * @param depuuid  部门id
	 * @return
	 */
	public List<Employee> selectEmployeeListByDepUuid(Integer depuuid);
	
	
}
